package top.xiesen.generic;
/**
 * 泛型类:声明时使用泛型
 * 字母:	- T Type 表示类型
	- K V 分别代表键值中的Key和Value.
	- E 代表Element.
	- ? 代表不确定的类型 
	使用的时候确定类型
 * @author Allen
 *
 *注意:1. 泛型只能使用引用类型,不能使用基本数据类型
 *	  2. 不能使用静态方法和静态属性
 * @param <T>
 */
public class Students<T1,T2> {

	// 泛型只能使用引用类型,不能使用基本数据类型
	private T1 javaScore;
	private T2 javaOracle;
//	不能使用静态方法和静态属性
//	private static T1 test(){}
	public T1 getJavaScore() {
		return javaScore;
	}
	public void setJavaScore(T1 javaScore) {
		this.javaScore = javaScore;
	}
	public T2 getJavaOracle() {
		return javaOracle;
	}
	public void setJavaOracle(T2 javaOracle) {
		this.javaOracle = javaOracle;
	}
	
	
	
	public static void main(String[] args) {
		 //使用时指定数据类型
		Students<String, Integer> stu = new Students<String, Integer>();
		// 安全: 类型检查
		stu.setJavaScore("优秀");
		// 省心:类型转换
		stu.setJavaOracle(100); //自动拆箱
		
		
	}
}
